package com.admin.system.dao;

import com.admin.system.entity.SystemResource;

import java.util.List;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

@Repository
public interface SystemResourceMapper {
	int deleteByPrimaryKey(Integer id);

	int insert(SystemResource record);

	int insertSelective(SystemResource record);

	SystemResource selectByPrimaryKey(Integer id);

	SystemResource queryResourceByUrl(@Param("url") String url);

	int updateByPrimaryKeySelective(SystemResource record);

	int updateByPrimaryKey(SystemResource record);

	/**
	 * 查询系统菜单
	 * 
	 * @param excludeRoot 是否排除根节点
	 * @return
	 */
	List<SystemResource> querySystemResource(@Param("excludeRoot") Boolean excludeRoot,
			@Param("status") Integer status);

	/**
	 * 获取用户的菜单
	 * 
	 * @param userId
	 * @return
	 */
	List<SystemResource> queryUserMenu(@Param("userId") Integer userId);

	/**
	 * 查询子节点集合
	 * 
	 * @param pid
	 * @param status
	 * @return
	 */
	List<SystemResource> queryChildrenResource(@Param("pid") Integer pid, @Param("status") Integer status);

	List<Integer> assignedIds(@Param("roleId") Integer roleId);

	Integer addAllocation(@Param("roleId") Integer roleId, @Param("resourceIds") List<Integer> resourceIds);

	Integer removeAllocation(@Param("roleId") Integer roleId, @Param("resourceIds") List<Integer> resourceIds);

}